package cn.machen.www.fashion.pojo;

import java.math.BigDecimal;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 购物车类：一个购物车包含多个购物条目
 */
public class Cart {
    //已商品的pid来保存每个购物条目
    private Map<String,CartItem> map = new LinkedHashMap<String, CartItem>();

    //计算合计
    public double getToatal(){
        BigDecimal total = new BigDecimal("0");
        for(CartItem cartItem:map.values()){
            BigDecimal subtotal = new BigDecimal("" + cartItem.getSubtotal());
            total = total.add(subtotal);
        }
        return total.doubleValue();
    }
    //添加商品条目
    public void add(CartItem cartItem){
        //如果购物车已经有了该商品就更新该商品的数量
        if(map.containsKey(cartItem.getProduct().getPid())){
            CartItem item = map.get(cartItem.getProduct().getPid());
            item.setCount(item.getCount()+cartItem.getCount());
            map.put(cartItem.getProduct().getPid(),cartItem);
        }else{
            map.put(cartItem.getProduct().getPid(),cartItem);
        }
    }
    //清空所有条目
    public void clear(){
        map.clear();
    }
    //删除指定条目
    public void delete(String pid ){
        map.remove(pid);
    }
    //获取所有条目
    public Collection<CartItem> getCartItem(){
        return map.values();
    }
}
